找传奇、传世资源到传世资源站!

串口通讯实例(java swing)

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

实现了,多个监听多个串口设备连接串口通讯实例(java swing) J2ME平台开发-第1张 public void init(ParamConfig paramConfig, CallBackInterface callback) throws Exception {
    this.callBackFun = callback;
    this.paramConfig = paramConfig;
        // 获取系统中所有的通讯端口
        portList = CommPortIdentifier.getPortIdentifiers();
        // 记录是否含有指定串口
        boolean isExsist = false;
        // 循环通讯端口
        while (portList.hasMoreElements()) {
            commPortId = portList.nextElement();
            // 判断是否是串口
            if (commPortId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                // 比较串口名称是否是指定串口
                if (paramConfig.getSerialNumber().equals(commPortId.getName())) {
                    // 串口存在
                    isExsist = true;
                    // 打开串口
                    try {
                        // open:(应用程序名【随意命名】,阻塞时等待的毫秒数)
                        serialPort = (SerialPort) commPortId.open(Object.class.getSimpleName(), 2000);
                        // 设置串口监听
                        serialPort.addEventListener(this);
                        // 设置串口数据时间有效(可监听)
                        serialPort.notifyOnDataAvailable(true);
                        // 设置串口通讯参数:波特率,数据位,停止位,校验方式
                        serialPort.setSerialPortParams(paramConfig.getBaudRate(), paramConfig.getDataBit(),
                                paramConfig.getStopBit(), paramConfig.getCheckoutBit());
                    } catch (PortInUseException e) {
                        try {
throw new CustomException("端口被占用");
} catch (CustomException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
                    } catch (TooManyListenersException e) {
                        try {
throw new CustomException("监听器过多");
} catch (CustomException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
                    } catch (UnsupportedCommOperationException e) {
                        try {
throw new CustomException("不支持的COMM端口操作异常");
} catch (CustomException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
                    }
                    // 结束循环
                    break;
                }
            }
        }
        // 若不存在该串口则抛出异常
        if (!isExsist) {
            try {
throw new CustomException("不存在该串口!");
} catch (CustomException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        }
    }

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复